package com.yh.correct.dao;


import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import com.yh.correct.model.SystemMailbox;

/**
 * 发件箱管理接口
 *
 * @author崔赛赛
 */
@Resource
public interface ISystemMailboxMapper {
    /**
     * 根据id添加信件
     */
    Integer addSystemMailbox(SystemMailbox systemMailbox);

    /**
     * 保存信件
     * @param systemMailbox
     * @return
     */
    Integer saveMail(SystemMailbox systemMailbox);

    /**
     * 发送信件
     * @param systemMailbox
     * @return
     */
    Integer pubMail(SystemMailbox systemMailbox);

    /**
     * 通过修改发送状态发送邮件
     * @param id
     * @return
     */
    Integer pubMails(int id);
    /**
     * 根据id删除信件
     */
    Integer delSystemMailbox(Integer id);

    /**
     * 根据id更改信件
     */
    Integer editSystemMailbox(SystemMailbox systemMailbox);

    /**
     * 根据id查询信件
     */
    SystemMailbox getSystemMailbox(Integer id);

    /**
     * 查询所有信件
     */
    List<SystemMailbox> getAllSystemMailbox();

    /**
     * 修改邮件标题、内容、收件人
     *
     * @param systemMailbox
     * @return
     */
    int editMail(SystemMailbox systemMailbox);
    /**
     * 根据发件人id查询发件信息
     * @param map
     * @return
     * @throws Exception
     */
    List<Object> getSendIdMessage(Map<String,Object> map) throws Exception;

    /**
     * 根据发件人id查询发件信息条数
     * @param map
     * @return
     * @throws Exception
     */
    int getSendIdMessageCount(Map<String,Object> map) throws Exception;
    /**
     * 根据收件人id查询发件信息
     * @param map
     * @return
     * @throws Exception
     */
    List<Object> getReceiveIdMessage(Map<String,Object> map) throws Exception;
    /**
     * 根据收件人id查询发件信息条数
     * @param map
     * @return
     * @throws Exception
     */
    int getReceiveIdMessageCount(Map<String,Object> map) throws Exception;

    /**
     * 根据收件人id查询收件箱未读信息条数
     * @return
     * @throws Exception
     */
    int getUnReadMessageCount(int receiveId) throws Exception;

    /**
     * 将收件箱信息设为已读状态
     * @param id
     * @return
     * @throws Exception
     */
    int readMessage(int id) throws Exception;
    /**
     * 批量删除信件
     * @param list
     * @return
     * @throws Exception
     */
    int deleteBatch(List<Integer> list) throws Exception;
}
